<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据获取与清洗|Ficklelyh -Haloer的学习笔记</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }
        header, footer {
            background: #333;
            color: #fff;
            text-align: center;
            padding: 1em;
        }
        main {
            flex: 1;
            padding: 20px;
        }
        h1, h3 {
            color: #333;
        }
        p {
            line-height: 1.6;
        }
        @media (max-width: 600px) {
            body {
                flex-direction: column;
            }
            main {
                padding: 10px;
            }
        }
    </style>
</head>
<body>
    <main>
        <h1>数据获取与清洗</h1>
        <h6>2024-11-27----By.JS<br>QQ:3861497429</h6>
        <hr>
        <h3>pandas读取shopping.csv并将读取的csv打印</h3>
        <p>
            1.引入库 <code>import pandas as pd</code><br>
            2.读数据 <code>df=pd.read_csv('./data/shopping.csv')</code><br>
            3.打印数据 <code>print(df)</code>
        </p>
        <hr>
        <h3>删除库存小于 10 或库存大于10000 的数据，并存入shop1.csv</h3>
        <p>
            1.选择库存在10到10000之间的行<code>ee=df.loc[(df['库存']>=10)&(df['库存']<=10000)]</code>
            2.保存数据<code>ee.to_csv('shop1.csv')</code><br>
        </p>
        <hr>
        <h3>将涉及“刷单”、“捡漏”等字段的数据删除，并存入shop2.csv</h3>
        <p>
            1.数据<code>ee=df[~df['名称'].str.contains('刷单|捡漏', na=False)]</code><br>
            2.打印数据 <code>print(ee)</code><br>
            3.保存数据<code>ee.to_csv('shop2.csv')</code><br>
        </p>
        <hr>
        <h3>将商品中涉及“女装”字段的数据删除，并存入shop3.csv</h3>
        <p>
            1.数据<code>ee=df[~df['名称'].str.contains('女装', na=False)]</code><br>
            2.打印数据 <code>print(ee)</code><br>
            3.保存数据<code>ee.to_csv('shop3.csv')</code><br>
        </p>    
        <hr>
        <h5>将shopping.csv中手机价格为区间数据的，设置为价格区间的平均数，存入shop4.csv</h5>
        <p>
            <code>
                def qj(i):<br>
                if('-' in i):<br>
                    arr = i.split('-')<br>
                    return (float(arr[0]) + float(arr[1]))<br>
                return i<br>
            df['价格']=df['价格'].apply(qj)<br>
            df.to_csv('shop4.csv')
            </code><br>
        </p> 
        <h1>数据标注</h1>
        <p style="font-size: 12px;">
            使用Python工具库SnowNLP对手机商城评论数据
            model_comment.csv进行标注，<br>
            获取情感倾向评分（
            sentiments）,具体的对情感倾向的标注规则如下：<br>
            （1）对分数大于等于0.6的评论数据标注为正向；<br>
            （2）对分数大于0.4小于0.6的评论数据标注为中性；<br>
            （3）对分数小于等于0.4的评论数据标注为负向。<br></p>
        <code style="font-size: 12px;">
            import pandas as pd<br>
            from snownlp import SnowNLP<br>
            df=pd.read_csv('./data/model_comment.csv')<br>
            print(df)<br>
            df.drop("情感倾向",axis=1,inplace=True)<br>
            <br>
            def bz(val):<br>
                if(val >= 0.6):<br>
                    return "正向"<br>
                elif(val <= 0.4):<br>
                    return "负向"<br>
                return "中性"<br>
            
            df['情感倾向'] = df['评论信息'].apply(lambda x:bz(SnowNLP(x).sentiments))<br>
            res = pd.concat([df["编号"],df["手机品牌"],df["评论信息"],df["情感倾向"],df["编号"]],axis=1)<br>
            print(res)<br>
            res.to_csv('model_sen.csv')<br>
            
            


        </code>

    </main>


    
</body>
</html>